Cloud-based, or hosted, computing generally involves executing applications via a web browser or web app, and obtaining information for the applications from a remote server system or service. Cloud computing provides real advantages over traditional desktop software, such as the ability to access documents from various different computers and locations. Office productivity applications are one type of application currently be delivered by the cloud. For example, users can employ their web browsers to edit word processing and spreadsheet documents that are stored on hosted server systems, can access enterprise resource planning (ERP) applications, can edit photos, and can perform most other activities that they could previously perform only with desktop productivity software.
Web browsers do, however, place a number of limits on programs that run on them, such as JavaScript programs. For example, web browsers may offer programmers HTML elements that are very simple to implement but can be rather inflexible. For example, a browser text box can be a simple way for a programmer to acquire textual input from a user of a browser, but the manner is which the text is presented is relatively bland, and does not come close to providing a WYSIWYG experience. Also, browsers do not provide access to native text rendering capabilities, do not generally permit much flexibility in positioning images on a web page, and cannot natively execute other functions that are expected from a full-featured word processor application.